// 引入ws
const websocket = require('ws')
const path = require('path')
const fileUtils = require('../utils/file_utils')
// 创建实例对象绑定端口
const wss = new websocket.Server({
    port: 9998
})

module.exports.listen = ()=>{
    wss.on('connection', client => {
        console.log('客户端链接成功');
        // 对客户端进行message事件监听
        // msg ： 发送的数据
        // 客户端发送到服务端的数据为msg
        client.on('message',async msg => {
            // 服务端处理后，向客户端发送数据
            let payload = JSON.parse(msg)
            console.log(payload);
            const action = payload.action
            if(action === 'getData') {
                // 拼接数据地址链接
                let filePath = '../data/' + payload.chartName + '.json'
                // 拼接当前路径下的文件地址
                filePath = path.join(__dirname,filePath)
                // 调用自定义解析方法解析出结果
                const ret = await fileUtils.getFileJsonData(filePath)
                // 将结果增加到data字段，并发送给客户端
                payload.data = ret
                client.send(JSON.stringify(payload))
            }else{
                // 不是获取数据的请求，向所有客户端同步请求
                wss.clients.forEach(client => {
                    client.send(JSON.parse(JSON.stringify(`${msg}`)))
                })
            }
        })
    })

}